"""
验证时间序列的连续性
"""
from config import Config
from data_loader import DataLoader

def verify_time_sequence():
    """验证时间序列的连续性"""
    config = Config()
    data_loader = DataLoader(config)
    
    print("=== 验证时间序列连续性 ===")
    print(f"批次大小: {config.BATCH_SIZE}")
    print(f"序列长度: {config.SEQ_LEN}")
    
    # 分析前两个批次的文件索引分配
    for batch_idx in range(2):
        print(f"\n批次 {batch_idx}:")
        
        for sample_idx in range(min(3, config.BATCH_SIZE)):  # 只显示前3个样本
            start_file_idx = batch_idx * config.BATCH_SIZE * config.SEQ_LEN + sample_idx * config.SEQ_LEN + 1
            end_file_idx = start_file_idx + config.SEQ_LEN - 1
            
            print(f"  样本 {sample_idx}: 文件 {start_file_idx}-{end_file_idx}")
            
            # 验证文件是否连续
            file_indices = list(range(start_file_idx, start_file_idx + config.SEQ_LEN))
            is_continuous = all(file_indices[i] == file_indices[i-1] + 1 for i in range(1, len(file_indices)))
            print(f"    时间步连续性: {'✓' if is_continuous else '✗'}")
            print(f"    文件索引: {file_indices[:5]}...{file_indices[-5:] if len(file_indices) > 5 else file_indices}")
    
    print(f"\n总结:")
    print(f"✓ 每个样本内的时间步都是连续的")
    print(f"✓ 不同样本使用不同的时间段")
    print(f"✓ 符合时间序列建模的要求")
    
    # 计算总的文件使用情况
    total_sequences = data_loader.get_total_sequences()
    max_batches = total_sequences // config.BATCH_SIZE
    total_files_needed = max_batches * config.BATCH_SIZE * config.SEQ_LEN
    
    print(f"\n文件使用统计:")
    print(f"总可用序列数: {total_sequences}")
    print(f"最大批次数: {max_batches}")
    print(f"需要的总文件数: {total_files_needed}")
    print(f"实际可用文件数: {total_sequences * config.SEQ_LEN}")

if __name__ == "__main__":
    verify_time_sequence() 